3 Multi endpoint race conditions
Deseo comprarme el producto "lightweight leet leather jacket" pero cuento unicamente con 100 dolares es decir me falta 1237 esta me entregara un codigo de cupon que puedo reclamar luego el cupon me entrega un descuento. Al comprarla obtengo esta vista:
Store credit: $90.00
Your order is on its way!
Name Price Quantity
Gift Card $10.00 1
Total: $10.00
You have bought the following gift cards:
Code
5nXhYcOvSK
Obtuve el codigo 5nXhYcOvSK
Volviendo: al comprar la giftcard hice un post
POST /cart HTTP/2
Host: 0a050040037c3fbb811c989b00da009e.web-security-academy.net
productId=2&redir=PRODUCT&quantity=1
Code KBhI12MUH6 5nXhYcOvSK
Endpoints:
- tras una compra :
/cart/checkout - carrito:
/cart - reclamar giftcard:
POST /gift-cardy en el bodygift-card=5nXhYcOvSKen caso al reclamarlo me aumento en 10 $ y no me permite utilizarlo como descuento, es decir : coupon code != gift card - carrito + coupon code:
/cart?couponError=INVALID_COUPON&coupon=KBhI12MUH6
Es posible que exista una race window que permita comprar varias giftcards aprovechando una fraccion de segundo.